Adaptive Data Delivery

ABSTRACT

Techniques for use in delivering data from a host service to a mobile device operative in a wireless network are disclosed. The host service is configured to maintain in a host memory an availability status indicative of the availability of the mobile device in the wireless network. A router receives an indication signal from the mobile device within a predetermined interval. The indication signal indicates one or more functional states or parameter levels of the mobile device. When the one or more functional states or parameter levels of the indication signal are indicative of availability, and a cached availability status in cache memory of the router equals to unavailable, the router changes the cached availability status from unavailable to available and transmits the changed availability status from the router to the host service for setting the availability status at the host service.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is a continuation of and claims priority to U.S.non-provisional patent application having application Ser. No.11/236,363 and filing date of 27 Sep. 2005, now U.S. Pat. No. ______,which is hereby incorporated by reference herein.

FIELD OF THE INVENTION

The present invention generally relates to a wireless communicationsystem, and more specifically to a system and a method for adaptivelydelivering data to a wireless mobile device based upon the availabilityof the wireless mobile communication device in the wirelesscommunication system.

BACKGROUND OF THE INVENTION

In a wireless communication system designed to deliver data to awireless mobile communication device (“mobile device”) such as acellular telephone, a two-way pager, a wireless communication capablepersonal digital assistant (“PDA”), and other similar device, there areseveral main components in the wireless communication system. A hostservice, which provides services such as e-mail, calendar, and Internetweb browsing, holds the data to be delivered to the mobile device. Thehost service is coupled to a router, which couples the host service anda wireless network that is designed to communicate with the mobiledevice. To make a timely delivery of the data, the host service forwardsthe data for the mobile device to the router when the data becomesavailable. The router then forwards the data to the wireless network,which transmits the data to the mobile device. If the mobile devicefails to receive the data, the router queues the data and re-forwardsthe data to the wireless network, which re-transmits the data to themobile device. This process continues until the. mobile device receivesthe data and acknowledges the reception or the process times out after apredetermined time period. While the data is being transmitted andqueued, another data may become available for the mobile device in thehost service, and may be forwarded to the router. The other data is thenforwarded to the wireless network and is transmitted to the mobiledevice, but fails to be received by the mobile device. The host servicecontinues to transmit more data, as they become available, to the routerwithout the knowledge of the mobile device thereby wasting the hostservice resources, undeliverable data continues to accumulate in therouter wasting the router resources, and the capacity in the wirelessnetwork is wasted by repeatedly transmitting the data without having anyindication that the delivery of the data will be successful.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary environment in which a wireless communicationsystem in accordance with at least one of the preferred embodiments maybe practiced;

FIG. 2 is an exemplary state diagram of a host service in accordancewith at least one of the preferred embodiments;

FIG. 3 is an exemplary sequence diagram illustrating a sequence ofadaptive delivery of data from a host service to a wireless mobilecommunication device in a wireless communication system in accordancewith at least one of the preferred embodiments;

FIG. 4 is an exemplary flowchart illustrating a process of adaptivedelivery of data to a wireless mobile communication device in a wirelesscommunication system in accordance with at least one of the preferredembodiments;

FIG. 5 is an exemplary flowchart further illustrating the process forsetting the availability status at the host service based upon thecached availability status at the wireless router system in accordancewith at least one of the preferred embodiments;

FIG. 6 is an exemplary flowchart further illustrating the process fordetermining whether to re-transmit the data from the wireless routersystem to the mobile device in accordance with at least one of thepreferred embodiments; and

FIG. 7 is an exemplary block diagram of a wireless communication systemconfigured to adaptively deliver data to a wireless mobile communicationdevice in the wireless communication system in accordance with at leastone of the preferred embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A wireless communication system, comprising a host service, a wirelessrouter system coupled to the host service, a wireless network couplingthe wireless router system and a wireless mobile communication device(“mobile device”), adaptively delivers data to the mobile device in thewireless communication system. When the host service has data to bedelivered to the mobile device, it first determines the availabilitystatus of the mobile device at the host service. The availability statusmay be based upon its previous data delivery to the mobile device, acached availability status at the wireless router system, which maycheck whether the mobile device is registered in the wireless network.The wireless network may be, but not limited to, a cellular telephonenetwork, a two-way paging network, a short range wireless network suchas Bluetooth™ and IEEE 802.11 compliant network, and others alike,through which the mobile device is accessible by the wireless routersystem. If the mobile device is determined to be available, then thehost service transmits the data to the wireless router system, whichdelivers the data through the wireless network to the mobile device.However, if the mobile device is determined to be unavailable, then thehost service queues the data but does not send the data until the mobiledevice is re-determined to be available, thereby avoiding unnecessarytransmission of the data directed to the mobile device.

FIG. 1 is an exemplary wireless communication system 100 in which awireless communication system in accordance with at least one of thepreferred embodiments may be practiced. The exemplary wirelesscommunication system 100 includes a plurality of host services (threeshown, 102, 104, and 106), each of which may have a plurality ofservices such as, but not limited to, e-mail, calendar, Internet webbrowser, and other applications, available to their subscribers. Thehost services 102, 104, and 106 are connected to a communication network108 such as Internet, which connects to a wireless router system 110allowing communication between the host services 102, 104, and 106 andthe wireless router 110. The wireless router system 110 may also beconnected to a host service, such as a local service 112, without thecommunication network 108. The wireless router system 110 is connectedto a plurality of wireless networks (three shown, 114, 116, and 118),each of which may support a plurality of mobile devices (one in eachwireless network is shown, 120, 122, and 124). The wireless networks114, 116, and 118 may be a cellular telephone network, a two-way pagingnetwork, a short range wireless network such as Bluetooth™ and IEEE802.11 compliant network, and others alike, and the mobile devices 120,122, and 124 are device compatible with the corresponding wirelessnetwork.

FIG. 2 is an exemplary state diagram 200 of a host service in accordancewith at least one of the preferred embodiments. In this example, thestates of the host service 102 attempting to deliver data to the mobiledevice 120 are illustrated. In state 202, the host service 102 checkswhether the state of the availability status of the mobile device 120 isknown upon generating the data to be delivered to the mobile device 120.The data may be generated internally by the host service 102 or may begenerated in response to the host service 102 receiving correspondingdata from another source. For example, the data may be a message fromthe host service 102 regarding a service that the host service providesto the mobile device 120 such as Internet web browsing, music downloads,news service, or any other host service specific services originatingfrom the host service 102, or the data may be an e-mail message, sentfrom an external source and received by the host service 102, to bedelivered to the mobile device 120. The availability status of themobile device 120 may be, or become, unknown, for example, when the hostservice 120 initially generates the data having no prior knowledge ofthe availability of the mobile device 120, a previously storedavailability status becomes stale or too old, or the host serviceencounters a reset condition such as losing connection to the wirelessrouter system 110. If the host service 102 has data for the mobiledevice 120 and the availability status of in the mobile device 120 isunknown, the host service 102 requests, and receives from, the wirelessrouter system 110 the current status of the mobile device 120 in thewireless router system 110 in state 204, and the availability status ofin the mobile device 120 becomes known in state 206. The host service102 may also receive an updated availability status whenever theavailability status at the wireless router system 110 changes. If thehost service 102 has data for the mobile device 120 and the availabilitystatus of in the mobile device 120 is known, in state 206, the hostservice 102 determines whether mobile device 120 is available based uponthe known availability status. In state 208 where the known availabilitystatus of the mobile device 120 equals available, the host serviceforwards the data to the wireless router system 110. If the knownavailability status of the mobile device 120 equals unavailableavailable in state 210, the host service 102 queues the data and returnsto state 202.

FIG. 3 is an exemplary sequence diagram 300 illustrating a sequence ofadaptive delivery of data from the host service 102 to the mobile device120 in the wireless communication system 100 in accordance with at leastone of the preferred embodiments. When the host service 102 generatesdata for the mobile device 120 having no known state of the availabilitystatus of the mobile device 120, the host service 102 requests theavailability status of the mobile device 120 at the wireless routersystem 110 from the wireless router system 110. In this example, thewireless router system returns the ‘unavailable’ status to the hostservice 102, and the data is queued in the host service 102. The hostservice 102 now has a known availability status of the mobile device120, which is ‘unavailable.’ A while later, the wireless router system110 receives a ‘keep-alive’ signal from the mobile device 120,indicating that the mobile device 120 is now available to receive datain the wireless communication system 100 through the wireless network114, and has an effect of the mobile device 120 establishing a virtualconnection with the wireless router system 110. The wireless routersystem now sends the ‘available’ status to the host service 102, and thehost service 102 forwards the data to the wireless router system 110.The host service 102 now has a known availability status of the mobiledevice 120, which is ‘available.” The wireless router system nowtransmits the data to the mobile device 120 through the wireless network114. When the host service 102 generates subsequent set of data for themobile device 120, the availability status of the mobile device 120 isalready know as ‘available’ and the host service 102 forwards thesubsequent set of data to the wireless router system 114. The mobiledevice 120 is designed to transmit the ‘keep-alive’ signal at apredetermined time period such as every 15 minutes as shown in FIG. 3,and the wireless router system 110 keeps the current availability statusof ‘available’ as long as the wireless router system 110 receives thekeep-alive signal at the predetermined time period interval. FIG. 3shows the wireless router system 110 receiving two consecutivekeep-alive signals at the predetermined time period interval aftertransmitting the subsequent set of data. Because the wireless routersystem 110 has received the keep-alive signals at the predetermined timeperiod interval, the availability status of the mobile device 120 isunchanged as available, and the wireless router system does not transmitan updated availability status to the host service 102. However, asshown in FIG. 3, the wireless router system 110 fails to receive thekeep-alive signal from the mobile device 120 during the third expectedinterval. The availability status of the mobile device 120 is nowchanged to ‘unavailable’ and the wireless router system 110 transmitsthe updated availability status of ‘unavailable’ to the host service102. The host service 102 then updates the availability status to‘unavailable’ such that if any subsequent data for the mobile device 120is generated while the availability status is ‘unavailable,’ the hostservice 102 queues such data. A while later, the wireless router system110 again receives the keep-alive signal from the mobile device 120, andupdates the availability status to ‘available.’ Because there has been achange in the availability status, the wireless router system transmitsthe updated availability status of ‘available’ the host service 102.

FIG. 4 is an exemplary flowchart 400 illustrating a process of adaptivedelivery of data to a mobile device in the wireless communication system100 in accordance with at least one of the preferred embodiments. Forthe purpose of the illustration, the data to be delivered resides in thehost service 102, and the data is to be delivered to the mobile device120. As previously explained, a host service may be connected to thewireless router system 110 with or without the communication network 108such as Internet. The process begins in block 402 and data to bedelivered to the mobile device 120 is generated in the host service 102in block 404. The data may be generated internally by the host service102 or may be generated in response to the host service receivingcorresponding data from another source. For example, the data may be amessage from the host service 102 regarding a service that the hostservice 102 provides to the mobile device 120 such as Internet webbrowsing, music downloads, news service, or any other host servicespecific services originating from the host service 102, or the data maybe an e-mail message, which is sent from an external source and receivedby the host service 102, to be delivered to the mobile device 120.Initially, such as the very first time the host service 102 is todeliver the data to the mobile device 120, the host service 102 has noknowledge of the availability of the mobile device 120 in the wirelesscommunication system 100. Instead of assuming that the mobile device 120is available to receive the data and transmitting the data to the mobiledevice 120, whether the availability status of the mobile device 120 isknown at the host service 102 is determined in block 406. Whether theavailability status of the mobile device 120 is known at the hostservice 120 in block 406 may be based upon a stored availability statusat the host service 102. The availability status of the mobile device120 may be deemed to be unknown if there is no stored availabilitystatus of the mobile device 120 such as when the process is firstinitiated and there is no prior stored availability status of the mobiledevice 120 at the host service 102. Even if the stored availabilitystatus of the mobile device 120 is known, it may be deemed to be unknownif the stored availability status becomes stale or too old. The storedavailability status may also become unknown if a connection between thehost service 102 and the wireless router system 110 is lost.

If the availability status of the mobile device 120 is determined to beknown in block 406, the process advances to block 408. However, if theavailability status of the mobile device 120 is determined to be unknownin block 406, the availability status of the mobile device 120 at thehost service 102 is set equal to a cashed availability status of themobile device 120 at the wireless router system 110 in block 410. Theavailability status of the mobile device 120 at the host service 102 nowbecomes known, and the process advances to block 408. In block 408, thevalue of the known availability status of the mobile device 120, i.e.,available or unavailable, at the host service 102 is determined. Forexample, the mobile device 120 may be determined to be unavailablebecause the mobile device 120 is outside of a coverage area provided bythe wireless network 114 or is turned off, or the wireless network 114is unavailable or unable to transmit the message to the mobile device120.

If the known availability status is determined to equal unavailable inblock 408, then the data becomes pending and is queued in the hostservice 102 in block 412, and the process loops back to block 406. Thepending data is only queued in the host service 102 only if the pendingdata to be queued is new, and is not re-queued if the pending data hasbeen already queued in a previous iteration. Queuing of the pending dataat the host service 102 is helpful in preserving resources in the caseof recovery from a system related failure such as a lost connection tothe wireless router 110. If the known availability status is determinedto equal available in block 408, then the data is transmitted from thehost service 102 to the wireless router system 110 in block 414. Thedata is then transmitted from the wireless router system 110 to themobile device 120 through the wireless network 114 in block 416. Inblock 418, whether the data transmission to the mobile device 120 hasbeen successful is determined. The successful data transmission from thewireless router system 110 to the mobile device 120 may be determinedbased upon a confirmation signal transmitted from the mobile device 120in response to successfully receiving the data. For example, there maybe a predetermined time period within which the confirmation signal fromthe mobile device 120 is expected after the data is transmitted from thewireless router system 110. The availability status of the mobile device120 at the wireless router system 110 may be re-determining upon theconfirmation signal, and the cached availability status at the wirelessrouter system 110 may then be updated with the re-determinedavailability status. If the data transmission is determined to besuccessful in block 418, then the process loops back to block 404, andwaits for next data. However, if the data transmission is determined tobe unsuccessful in block 418, then whether the data should bere-transmitted to the mobile device 120 is determined in block 420. Ifthe data is determined to be re-transmitted, then the process loops backto block 416 where the data is re-transmitted to the mobile device 120.If the data is determined not to be re-transmitted in block 420, thenthe process advances to block 412 where the data is queued at the hostservice 102, and the process from block 406 is repeated. However, if theindication signal from the mobile device 120 is received by the wirelessrouter system 110 after the data has been queued in the host service102, the cached availability status of the mobile device 120 at thewireless router system 110 is updated to “available”. The updated cachedavailability status of “available” is transmitted to the host service102 from the wireless router system 110, making the available status atthe host service 102 in block 408 equal to available. At this time, thepending data, which was previously queued, becomes ready to be deliveredto the mobile device 120, and is un-queued. Then the process fordetermining successful transmission of data to the mobile device 120from the host service 102, previously described in blocks 414, 416, 418and 420, is followed. If the transmission of the queued data to themobile device 120 is determined to be successful in block 418, then thepreviously queued data, which has now been successfully delivered to themobile device 120, is purged in block 422. The process then advances toblock 404, and waits for next data.

FIG. 5 is an exemplary flowchart further illustrating the process ofblock 410 for setting the availability status at the host service 102based upon the cached availability status at the wireless router system110 in accordance with at least one of the preferred embodiments. Thecached availability status of the mobile device 120 at the wirelessrouter system 110 may be based upon an indication signal transmittedfrom the mobile device 120. The indication signal, sometimes referred asa “heart beat” or a “keep-alive” signal, may be periodically transmittedby the mobile device 120, and if it is received by the wireless routersystem 110, it generally indicates that the mobile device 120 isavailable, or in a coverage area of the wireless network 114, and has aneffect of the mobile device 120 establishing a virtual connection withthe wireless router system 110. The indication signal, however, may alsoindicate unavailability of the mobile device 120 in the wirelesscommunication system 100. For example, the mobile device 120 may have avery limited memory space left and is unable to receive further data, ordue to its low battery status, its wireless communication ability maybegin to shut down to conserve the battery power. The indication signalmay include a plurality of functionality states of the wireless device120 such as, but not limited to, the available memory space, batterystatus, and received signal strength indicator (“RSSI”). In this examplefor simplicity, the indication signal from the mobile device 120 is usedto illustrate that the mobile device 120 is available in the wirelesscommunication system 100.

In block 502, whether the indication signal from the mobile device 120is received at the wireless router system 110 is determined. If it isdetermined that the indication signal has been received, then the cachedavailability status of the mobile device 120 at the wireless routersystem 110 is set to be “available” in block 504. If the cachedavailability status had previously been set to “unavailable” then it isre-set to be “available” in block 504. The process then advances toblock 506. If the indication signal is determined not to have beenreceived, then whether the indication signal periodic interval haselapsed is determined in block 508. If the indication signal periodicinterval is determined not to have elapsed, then the process loops backto block 502. As long as the indication signal is received periodicallyat, or within, the indication signal periodic interval, the cachedavailability status of the mobile device 120 is kept equal to available.However, if the indication signal periodic interval is determined tohave elapsed in block 508, then the cached availability status of themobile device 120 at the wireless router system 120 is set to be“unavailable” in block 510. If the cached availability status hadpreviously been set to “available” then it is re-set to be “unavailable”in block 510. The process then advances to block 506. In block 506, thecached availability status of the mobile device 120, either available orunavailable, at the wireless router system 110 is provided to the hostservice 102, setting the availability status to be known at the hostservice 102.

FIG. 6 is an exemplary flowchart further illustrating the process ofblock 420 for determining whether to re-transmit the data from thewireless router system 110 to the mobile device 120 as a result of thedata transmission being determined to be unsuccessful in block 418 inaccordance with at least one of the preferred embodiments. In block 602,whether predetermined re-try logic has been exhausted is determined. Thepredetermined re-try logic may include, and may be any combination of, amaximum number of re-transmissions, a maximum overall time ofre-transmissions, and a maximum back-off time. When implementing adelivery system in a wireless network, it is common to use a progressiveback-off method for re-transmitting data to a destination device. If there-try logic has not been exhausted, then the process loops back toblock 416 where the data is re-transmitted from the wireless routersystem 110 to the mobile device 120. However, if the re-try logic isexhausted, meaning that no confirmation signal has been received, themobile device 120 is deemed to be unavailable and the cachedavailability status at the wireless router system 110 is updated to“unavailable” in block 604. The updated cached availability status iscommunicated from the wireless router system 110 to the host service 102in block 606, and the availability status of the mobile device 120 atthe host service 102 is updated to “unavailable.” The process thenadvances to block 412 where the data is queued in the host service 102.

Because it takes a finite amount of time between when the mobile device120 is determined to be available to receive the generated data and whenthe data is transmitted from the wireless router system 110 to themobile device 120, there may be a change in the availability status ofthe mobile device 120 during that time. To address this concern,additional steps may be provided between block 414, in which the data istransmitted from the host service 102 to the wireless router system 110,and block 416, in which data is transmitted from the wireless routersystem 110 to the mobile device 120. For example, instead of solelyrelying on the availability status of the mobile device 120 at the hostservice 102, the availability status of the mobile device 120 may beevaluated at the wireless router system 110 when the data is transmittedfrom the host service 102 to the wireless router service 110 based uponthe current cached availability status at the wireless router system110. The decision whether to further transmit the data from the wirelessrouter system 110 to the mobile device 120 then may be made based uponthe evaluated cached availability status of the mobile device 120. Ifthe evaluated cached availability status is “available”, then the datais transmitted from the wireless router system 110 to the mobile device120 in block 416, and the process previously described is followed.However, if the evaluated cached availability status is “unavailable”,then the availability status of the mobile device 120 at the hostservice 102 is updated to “unavailable”, and the data is queued at thehost service 102 in block 412.

FIG. 7 is an exemplary block diagram of a wireless communication system700 configured to adaptively deliver data to a wireless mobilecommunication device (“mobile device”) in the wireless communicationsystem 700 in accordance with at least one of the preferred embodiments.Although the wireless communication system 700 may include a pluralityof host services, wireless networks, and wireless devices as previouslyshown in FIG. 1, the wireless communication system 700 in FIG. 7 isshown with a reduced number of elements for simplicity. The wirelesscommunication system 700 includes a mobile device 702, and a hostservice 704, which includes a data generator 706 configured to generatedata to be delivered to the mobile device 702. The data generator 706may generate the data to be delivered to the mobile device 702 inresponse to receiving corresponding data. The host service 704 alsoincludes a status evaluator 708 configured to determine whether anavailability status of the wireless device 702 in the wirelesscommunication system 700 is known. The host service 704 is coupled to awireless router system 710, and has a host transmitter 712 thattransmits the data to the wireless router system 710 if the knownavailability status of the mobile device 702 equals available. The hostservice 704 also has a host memory 714, and queues the data in the hostmemory 714 if the known availability status equals unavailable. The hostservice 704 only queues the data in the host memory 714 only if the datato be queued is new and does not re-queue the data that has already beenqueued in a previous iteration. The host service 704 may be coupled tothe wireless router system 710 through a communication network 716,which may be a wide area network such as Internet, and is configured toallow communication between the host service 704 and the wireless routersystem 710.

The wireless router system 710 includes a cache memory 718 configured tocache the availability status of the mobile device 702 in the wirelesscommunication system 700. The wireless router system 710 also includes arouter receiver 720 configured to receive the data from the host service704, and a router transmitter 722 configured to transmit the data to awireless communication network 724. The wireless communication network724 is coupled to both the wireless router system 710 and the mobiledevice 702, and is configured to receive the data from the wirelessrouter system 710 and to transmit the data to the mobile device 702. Thewireless communication network 724 may be a cellular telephone network,a two-way paging network, a short range wireless network such asBluetooth™ and IEEE 802.11 compliant network, and others alike, which iscompatible with the mobile device 702.

If the status evaluator 708 determines that the availability status ofthe mobile device 702 in the wireless communication system 700 is notknown, then the status evaluator 708 sets the cached availability statusstored in the cache memory 718 as the known availability status. If theknown availability status equals available, the host transmitter 712transmits the data to the wireless router system 710. If the knownavailability status equals unavailable, the host service 704 queues thedata in the host memory 714. The data generator 706 may treat the queueddata in the host memory 714 as generated data.

The status evaluator 708 may also determine the availability status ofthe mobile device 702 based upon a stored availability status at thehost service 704, for example in the host memory 714. The statusevaluator 708 may determine that the availability status at the hostservice 704 is unknown if there is no stored availability status, or ifa predetermined time period has passed since the availability status hasbeen stored, meaning the stored availability status is too old. Thestatus evaluator 708 may also determine that the availability status atthe host service 704 is unknown if a connection between the host service704 and the wireless router system 710 is lost.

At the wireless router system 710, the cached availability status of thewireless device 702 may be based upon an indication signal from thewireless device 702. The indication signal may sometimes be referred asa “heart beat” or a “keep-alive” signal. If the wireless router system710 receives the indication signal, for example by the router receiver720, it indicates that the wireless device 702 is available, or in acoverage area of the wireless network 724. The indication signal mayinclude various states of the wireless device 702 in addition to anindication being available to receive the data from the host service 704such as, but not limited to, current location based on a GlobalPositioning System (“GPS”) data, battery status, memory status, transmitpower level, receive signal strength indicator (“RSSI”) value, and otherparameters. If the wireless router system 710 receives the indicationsignal from the mobile device 702, the wireless router system 710 makesthe cached availability status of the wireless device 702 equal toavailable in the cache memory 718. If the wireless router system 701fails to receive the indication signal from the wireless device 702, thewireless router system 710 makes the cached availability status of thewireless device 702 equal to unavailable in the cache memory 718.

The wireless device 702 may transmit the indication signal periodically,and the wireless router system 710 may keep the cached availabilitystatus in the cache memory 718 equal to available if the wireless routersystem 710 receives the indication signal from the mobile device 702periodically at a predetermined interval. Conversely, if the wirelessrouter system 710 fails to receive the indication signal from the mobiledevice 702 periodically at a predetermined interval, the wireless routersystem may change the cached availability status to unavailable, andtransmit the changed cached availability status to the host service 704,for example, by the router transmitter 722, causing the status evaluator708 to update the known availability status to unavailable. The cachedavailability status may be changed back to available when wirelessrouter system 710 once again receives the indication signal from themobile device 702, and may transmit the changed cached availabilitystatus, now back to available, to the host service 704. If there isqueued data at the host service 704 at this time, then the hosttransmitter 712 transmits the queued data to the wireless router system710.

After the router transmitter 722 transmits the data to the mobile device702, the wireless router system 710 may determine whether the datatransmission to the wireless device 702 has been successful based upon aconfirmation signal transmitted from the wireless device 702 in responseto successfully receiving the data. The wireless router system 710 maythen re-determine the availability status of the wireless device 702based upon the confirmation signal, and update the cached availabilitystatus in the cache memory 718 with the re-determined availabilitystatus. The wireless router system 710 may be configured to receive theconfirmation signal within a predetermined time period aftertransmission of the data to the mobile device 702, and to re-transmitthe data to the mobile device 702 until predetermined re-try logic isexhausted if the wireless router system 710 fails to receive theconfirmation signal within the predetermined time period. Thepredetermined re-try logic may one or any combination of a maximumnumber of re-transmissions, a maximum overall time of re-transmissions,and a maximum back-off time. When implementing a delivery system in awireless network, it is common to use a progressive back-off method forre-transmitting data to a destination device. If the wireless routersystem 710 fails to receive the confirmation signal after thepredetermined re-try logic is exhausted, then the wireless router system710 updates the cached availability status in the cache memory 718 ofthe mobile device 702 to unavailable. The wireless router system 710then transmits the updated cached availability status to the hostservice 704, which updates the availability status of the mobile device702 to unavailable and to queue the data in the host memory 714.However, if the indication signal from the mobile device 702 is receivedby the wireless router system 710 after the data has been queued in thehost memory 714, the cached availability status of the mobile device 702at the wireless router system 710 is updated to “available”. The updatedcached availability status of “available” is transmitted to the hostservice 704 from the wireless router system 710, making the statusevaluator 708 to set the availability status at the host service 702 toequal available. The wireless router system 710 then determines whetherthe transmission of queued data to the mobile device 702 has beensuccessful as previously described. If the wireless router system 710determines that the transmission of the queued data to the mobile device702 has been successful, then the host service 704 purges the previouslyqueued data, which has now been successfully delivered to the mobiledevice 702, from the host memory 714.

Because it takes a finite amount of time between when the wirelessrouter system 710 determines that the mobile device 702 is available andwhen the router receiver 720 receives the data from the host service704, it is possible for the mobile device 702 to have changed theavailability status during that time. To address this possibility, thewireless router system 710 be configured to evaluate the cachedavailability status of the mobile device 702 after receiving the datafrom the host service 704 but before transmitting the data to the mobilenetwork 724. If the evaluated cached availability status is equal toavailable, then the router transmitter transmits the data to the mobiledevice 702 through the wireless communication network 724. Thedetermination of a successful reception of the data by the mobile device702, re-transmission of the data, updating of the cached availabilitystatus and availability status at the host service 704, and queuing ofthe data may be performed as previously described.

While the preferred embodiments of the invention have been illustratedand described, it is to be understood that the invention is not solimited. Numerous modifications, changes, variations, substitutions andequivalents will occur to those skilled in the art without departingfrom the spirit and scope of the present invention as defined by theappended claims.

1-20. (canceled)
 21. A method in a router system configured to routemessages from a host service to a wireless mobile device via a wirelessnetwork, the host service being configured to provide a service for thewireless mobile device, the method in the router system comprising:receiving from the host service a message associated with the servicefor the wireless mobile device, and forwarding the message to thewireless mobile device via the wireless network; receiving an indicationsignal from the wireless mobile device via the wireless network, theindication signal including an indication that indicates unavailabilityto receive the message associated with the service; determining andsetting in memory of the router system an unavailability statusassociated with the wireless mobile device based on the receivedindication signal; and providing to the host service the unavailabilitystatus associated the wireless mobile device, for indicating to the hostservice to not send further messages associated with the service to therouter system for the wireless mobile device.
 22. The method of claim21, further comprising: receiving a request from the host service; andin response to the request, sending the unavailability status associatedwith the wireless mobile device to the host service.
 23. The method ofclaim 21, further comprising: determining the unavailability statusassociated with the wireless mobile device based on repeatedunsuccessful attempts to transmit messages associated with the serviceto the wireless mobile device.
 24. The method of claim 21, wherein therouter system is configured to communicate with a plurality of hostservices which are configured to provide a plurality of services for aplurality of wireless mobile devices.
 25. The method of claim 21,wherein the router system is configured to route messages which comprisemessages for electronic mail (e-mail).
 26. The method of claim 21,wherein the wireless mobile device comprises a cellular telephone. 27.The method of claim 21, wherein the indication comprises a functionalstate of the wireless mobile device.
 28. The method of claim 21, whereinthe indication comprises a parameter of the wireless mobile device. 29.The method of claim 21, wherein the indication indicates a status of abattery of the wireless mobile device or a status of available memoryspace in the wireless mobile device.
 30. The method of claim 21, whereinthe router system is external to the wireless network and incommunication with the host service over a connection via acommunication network comprising the Internet.
 31. A router system,comprising: a receiver configured to receive from a host service amessage associated with a service for a wireless mobile device; atransmitter configured to forward the' message associated with theservice to the wireless mobile device via a wireless network; thereceiver being further configured to receive an indication signal fromthe wireless mobile device via the wireless network, the indicationsignal including an indication that indicates unavailability to receivethe message associated with the service; the router system being furtherconfigured to determine and set in its memory an unavailability statusassociated with the wireless mobile device based on the receivedindication signal; and the transmitter being further configured toprovide to the host service the unavailability status associated thewireless mobile device, for indicating to the host service to not sendfurther messages associated with the service to the router system forthe wireless mobile device.
 33. The router system of claim 31, furthercomprising: the receiver being further configured to receive a requestfrom the host service; and the transmitter being further configured tosend, to the host server in response to the request, the unavailabilitystatus associated with the wireless mobile device.
 34. The router systemof claim 31, which is further configured to determine the unavailabilitystatus associated with the wireless mobile device based on repeatedunsuccessful attempts to transmit messages associated with the serviceto the wireless mobile device.
 35. The router system of claim 31, whichis further configured to communicate with a plurality of host serviceswhich are configured to provide a plurality of services for a pluralityof wireless mobile devices.
 36. The router system of claim 31, which isfurther configured to route messages which comprise messages forelectronic mail (e-mail).
 37. The router system of claim 31, which isconfigured to communicate with a wireless mobile device comprising acellular telephone.
 38. The router system of claim 31, wherein theindication comprises a functional state of the wireless mobile device.39. The router system of claim 31, wherein the indication comprises aparameter of the wireless mobile device.
 40. The router system of claim31, wherein the indication indicates a status of a battery of thewireless mobile device or a status of available memory space in thewireless mobile device.
 41. The router system of claim 31, which isexternal to the wireless network and in communication with the hostservice over a connection via a communication network comprising theInternet.